package com.zrrd.io.copy;

import java.io.*;

/**
 * @author WanJl
 * @version 1.0
 * @title FileCopyDemo03
 * @description
 * @create 2023/9/24 11:08
 */
public class FileCopyDemo03 {
    public static void main(String[] args) {
        try {
            long strat = System.currentTimeMillis();
            new FileCopyDemo03().copy("D:/CentOS-7-x86_64-DVD-1810.iso","E:/CentOS-7-x86_64-DVD-1810.iso");
            long end = System.currentTimeMillis();
            System.out.println("复制用时："+(end-strat)+"毫秒");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     *
     * @param source    原路径
     * @param target    目标路径
     */
    public void copy(String source,String target) throws Exception {
        //创建节点流，直接和文件操作的流
        FileInputStream fis = new FileInputStream(source);
        OutputStream fos = new FileOutputStream(target);
        //创建处理流，操作流的流
        BufferedInputStream bis=new BufferedInputStream(fis);
        BufferedOutputStream bos=new BufferedOutputStream(fos);

        //复制，一边读，一遍写
        byte[] bytes=new byte[1024];
        int length;
        //循环的读取文件中的内容
        while ((length=bis.read(bytes))!=-1){
            //循环着写，向文件中写内容
            bos.write(bytes,0,length);
        }
        //释放资源，先输入，后输出，先处理，后节点
        bis.close();
        bos.close();
        fis.close();
        fos.close();


    }




}
